package com.pashanhoo.distributed.loadbalance;

import com.pashanhoo.distributed.ServerIps;

/**负载均衡随机算法
 * @author 胡庆安
 * @version V1.0
 * @Package com.pashanhoo.distributed.loadbalance
 * @date 2020/10/29 15:41
 * @Copyright © 2010-2020 爬山虎科技（扬州）股份有限公司
 */
public class Random {
    public static void main(String[] args) {
        for (int i = 0;i<10;i++){
            System.out.println(getSimpleServer());
        }
    }

    //简单的随机
    public static String getSimpleServer(){
        java.util.Random random = new java.util.Random();
        int i = random.nextInt(ServerIps.LIST.size());

        return ServerIps.LIST.get(i);
    }

    //带权重的随机
    public static String getWeightServer(){

        //可以按照权重次数往list里面添加，然后再轮询遍历
        return "";
    }


    //带权重的随机2
    public static String getWeightServer2(){

        //第一种带权重的随机的缺点在于 项目中配置的为了更灵活，权重数会设置的很大，这样的list需要add很多对象进去内存会有问题
        //v2b版本采用比较偏移量的方式
        //例如：现有 700,200,100三个权重
        //先随机出一个1000以内的整数n，如果n<=700,则取第一个；如果700<n<900取第二个；如果900<n<1000取第三个；详见企业微信
        return "";
    }
}
